import Vue from 'vue'
import App from './App'
import { $http } from '@escook/request-miniprogram'
//导入 store 的实例对象(或者写成import store from '@/store/store.js'，"@/"代表根目录)
import store from './store/store.js'

//为 uni 对象挂载上面导出$http
uni.$http = $http 

// 配置全局的请求根路径
// $http.baseUrl = 'https://www.uinav.com' 502不能用了
$http.baseUrl = 'https://api-ugo-web.itheima.net'

// 封装的展示消息提示的方法;为 uni 对象挂载自定义的 $showMsg() 方法;duration是'数据加载失败！'显示时间
//这里的function后边的形参 意思是：如果不传该参数title和duration，默认该参数值为'数据加载失败！'、1500
uni.$showMsg = function (title = '数据加载失败！', duration = 1500) {
  uni.showToast({
    title,
    duration,
    icon: 'none',
  })
}

// ======================拦截器==============================================
// 请求拦截器：请求开始之前，展示 loading 效果
$http.beforeRequest = function (options) {
  uni.showLoading({ //wx.可调用的所有API，都可以通过uni.来调用
    title: '数据加载中...',
    })
    console.log(store)
 // 判断请求的是否为有权限的 API 接口
  if (options.url.indexOf('/my/') !== -1) {
    // 为请求头添加身份认证字段
    options.header = {
      // 字段的值可以直接从 vuex 中进行获取
      Authorization: store.state.m_user.token,
    }
  }
}

// 响应拦截器：请求完成之后，隐藏 loading 效果
$http.afterRequest = function () {
  uni.hideLoading()
}
//==========================================================================

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
	...App,
  //将store实例对象挂载到Vue实例上
  store, 
})
app.$mount()
